.TH SETBUF 3S 
.SH NAME
setbuf \- assign buffering to a stream
.SH SYNOPSIS
.B #include <stdio.h>
.PP
.B setbuf(stream, buf)
.br
.SM
.B FILE
.B *stream;
.br
.B char *buf;
.SH DESCRIPTION
.I Setbuf
is used after a stream has been opened but before it
is read or written.
It causes the character array
.I buf
to be used instead of an automatically allocated buffer.
If
.I buf
is the constant pointer
.SM
.B NULL,
input/output will be completely unbuffered.
.PP
A manifest constant 
.SM
.B BUFSIZ
tells how big an array is needed:
.PP
.in +10
char buf[BUFSIZ];
.PP
A buffer is normally obtained from
.IR  malloc (3)
upon the first
.I getc
or
.IR  putc (3)
on the file,
except that output streams directed to terminals,
and the standard error stream
.I stderr
are normally not buffered.
.SH "SEE ALSO"
fopen(3), getc(3), putc(3), malloc(3)
